#ifndef MOVABLEOBJECT_H
#define MOVABLEOBJECT_H

#include "Object.h"
#include "AnimCreature.h"

class MovableObject : public Object
{
public:

    virtual ~MovableObject();


    virtual OBJ_TYPE getType();

    virtual void init();
    virtual void update(double timeSinceLastFrame);
    virtual void clear();

    virtual void walkTo(Ogre::Vector2 target);
    void addWayPoints(std::list<Ogre::Vector2> list);
    void clearWayPoints();

    float getDistanceFromWalkTarget();

    virtual void setPosition(Ogre::Vector2 _position);



protected:

    bool isWalking;
    Ogre::Vector2               m_walkTarget;

    std::list<Ogre::Vector2> m_waypoints;
    Ogre::Real walkSpeed;
    Ogre::Real stepDistance;
    AnimCreature *m_animCreature;


    MovableObject();
private:
};

#endif // MOVABLEOBJECT_H
